package com.hk.service;

import com.hk.commons.HqlFilter;
import com.hk.commons.entity.Safety;
import com.hk.commons.entity.product.ProductInfo;
import com.hk.commons.vo.CheckInfo;

import java.util.List;

/**
 *
 * 
 * @author Sam
 * @date 2016年2月17日上午11:04:35
 */
public interface ISafety {

	/**
	 * 更新
	 *
	 * @param
	 */
	public void update(Safety u);


	public Safety getByKey(String key);

	public Safety getById(int id);


	public void addPayBackLogRecord(Long userId, Safety before, Safety after);

	/**
	 * 发送回款短信验证码
	 * @param productName
	 * @return
     */
	public CheckInfo sendPayBackMsgCode(String productName);

	/**
	 * 检查回款验证短信
	 * @param inputCode01
	 * @param inputCode02
	 * @return
	 */
	public CheckInfo checkPayBackMsgCode(String inputCode01,  String inputCode02);

	/**
	 * 二重验证检查验证码
	 * @param code01
	 * @param code02
	 * @param keyName
	 * @return
	 */
	CheckInfo checkCode(String code01,String code02,String keyName);
	/**
	 * 更新产品回款划拨错误次数
	 * @param prod
	 */
	public  void updErrorNum(ProductInfo prod);


	/**
	 * 获取产品回款划拨错误次数
	 * @param productId
	 * @return
	 */
	public  Integer getErrorNum(Long productId);

	/**
	 * 检查产品回款划拨错误次数
	 * @param prodId
	 * @return
	 */
	public CheckInfo checkErrorNum(Long prodId );

	/**
	 * 检查验证码错误次数
	 * @param actUserId 操作人的id
	 * @return
	 */
	CheckInfo checkCodeErrorNum(Long actUserId);

	/**
	 * 更新验证码错误次数
	 * @param actUserId
	 */
	void updateCodeErrorNum(Long actUserId);

	/**
	 * 根据条件统计总数量
	 * @param hqlFilter
	 * @return
	 */
	public Long countByFilter(HqlFilter hqlFilter);

	/**
	 *根据条件查询安全设置列表
	 * @param hqlFilter
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	public List<Safety> findByFilter(HqlFilter hqlFilter, int pageNum, int pageSize);

	/**
	 * 保存安全设置记录
	 * @param userId
	 * @param before
	 * @param after
	 */
	public void addUpdateLog(Long userId,Safety before, Safety after);

	/**
	 * 发送销户二次验证码
	 * @param userName
	 * @return
	 */
	public CheckInfo sendCloseAccountCode(String userName,String phone);


}
